package com.yootk.listener;

import jakarta.servlet.http.HttpSessionBindingEvent;
import jakarta.servlet.http.HttpSessionBindingListener;

/**
 * Session属性绑定监听
 */
public class SessionBindingMonitor implements HttpSessionBindingListener {
    private String userid; // 保存用户id

    public SessionBindingMonitor(String userid) {  // 不提供无参构造方法
        this.userid = userid; // 保存用户id信息
    }

    public String getUserid() {
        return userid;
    }

    @Override
    public void valueBound(HttpSessionBindingEvent event) { // 绑定处理
        // 在实际的项目之中，此处可以编写很多种操作代码的形式，例如：可以考虑将该数据保存在Redis里面。
        System.out.println("【SessionBindingMonitor.valueBound()】属性绑定，name = " + event.getName() + "、value = " + event.getValue());
    }

    @Override
    public void valueUnbound(HttpSessionBindingEvent event) { // 解绑处理
        System.out.println("【SessionBindingMonitor.valueUnbound()】属性解绑，name = " + event.getName() + "、value = " + event.getValue());
    }
}
